<?php

namespace App\Repository\Constracts;

interface RepositoryInterface {

    /**
     * @param  array  $columns
     * @return get
     */
    public function all($columns = array('*'));

    public function get($columns = array('*'));

    public function paginate($perPage = 15, $columns = array('*'));

    public function create(array $data);

    public function update(array $data, $id);

    public function delete($id);

    public function find($id, $columns = array('*'));

    public function findByFields(array $fields, $columns = array('*'));

    public function findFirstRowByFields(array $fields, $columns = array('*'));
}
